/**
   Copyright 2012 Shakil Siraj (shakil.siraj@gmail.com)

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 */
package com.googlecode.objectify.test.dataloader.example.bookstore;

import java.util.List;

import com.googlecode.objectify.Key;
import com.googlecode.objectify.Ref;
import com.googlecode.objectify.annotation.Cache;
import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Index;
import com.googlecode.objectify.annotation.Load;
import com.googlecode.objectify.test.dataloader.example.BaseDatastoreEntity;

/**
 * @author Shakil Siraj (shakil.siraj@gmail.com)
 *
 */
@Entity
@Cache
public class Book extends BaseDatastoreEntity {
    
    /**
     * The name of the book.
     */
	@Index
    private String title;
    
    /**
     * Book publisher.
     */
	@Index
    private Ref<Publisher> publisher;
    
    /**
     * List of authors.
     */
    @Index
    private List<Key<Author>> authors;
    
    /**
     * The category
     */
    private Key<Category> category;
    
    /**
     * The ISBN number.
     */
    @Index
    private String isbn;
    
    /**
     * A short description about the book.
     */	
    private String shortDescription;

    /**
     * Getter method for title
     * @return the title
     */
    public String getTitle() {
        return title;
    }

    /**
     * Setter method for title
     * @param title the title to set
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * Getter method for publisher
     * @return the publisher
     */
    public Ref<Publisher> getPublisher() {
        return publisher;
    }

    /**
     * Setter method for publisher
     * @param publisher the publisher to set
     */
    public void setPublisher(Ref<Publisher> publisher) {
        this.publisher = publisher;
    }

    /**
     * Getter method for authors
     * @return the authors
     */
    public List<Key<Author>> getAuthors() {
        return authors;
    }

    /**
     * Setter method for authors
     * @param authors the authors to set
     */
    public void setAuthors(List<Key<Author>> authors) {
        this.authors = authors;
    }

    /**
     * Getter method for category
     * @return the category
     */
    public Key<Category> getCategory() {
        return category;
    }

    /**
     * Setter method for category
     * @param category the category to set
     */
    public void setCategory(Key<Category> category) {
        this.category = category;
    }

    /**
     * Getter method for isbn
     * @return the isbn
     */
    public String getIsbn() {
        return isbn;
    }

    /**
     * Setter method for isbn
     * @param isbn the isbn to set
     */
    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    /**
     * Getter method for shortDescription
     * @return the shortDescription
     */
    public String getShortDescription() {
	return shortDescription;
    }

    /**
     * Setter method for shortDescription
     * @param shortDescription the shortDescription to set
     */
    public void setShortDescription(String shortDescription) {
	this.shortDescription = shortDescription;
    }

    
}
